<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<meta name="generator" content="ApiGen 2.7.0" />
	<meta name="robots" content="noindex" />

	<title>File lib/php/externals/swift/classes/Swift/CharacterReader/GenericFixedWidthReader.php | nort</title>

	<script type="text/javascript" src="resources/combined.js?1481722677"></script>
	<script type="text/javascript" src="elementlist.js?1094816827"></script>
	<link rel="stylesheet" type="text/css" media="all" href="resources/style.css?1567499433" />

</head>

<body>
<div id="left">
	<div id="menu">
		<a href="index.html" title="Overview"><span>Overview</span></a>


		<div id="groups">
			<h3>Packages</h3>
			<ul>
				<li><a href="package-App.html">App<span></span></a>
						<ul>
				<li><a href="package-App.Saas.html">Saas</a>
						</li>
				<li><a href="package-App.saas.html">saas</a>
						</li>
				<li><a href="package-App.SaaS.html">SaaS<span></span></a>
						<ul>
				<li><a href="package-App.saas.Logic.html">Logic</a>
						</li>
				<li><a href="package-App.SaaS.SaaS.html">SaaS</a>
						</li>
				<li><a href="package-App.Saas.Tables.html">Tables</a>
						</li>
				<li><a href="package-App.Saas.Vo.html">Vo</a>
						</li>
							</ul></li></ul></li>
				<li><a href="package-aqua.html">aqua<span></span></a>
						<ul>
				<li><a href="package-aqua.tools.html">tools<span></span></a>
						<ul>
				<li><a href="package-aqua.tools.Monitor.html">Monitor</a>
						</li>
							</ul></li></ul></li>
				<li><a href="package-flashservices.html">flashservices<span></span></a>
						<ul>
				<li><a href="package-flashservices.adapters.html">adapters</a>
						</li>
				<li><a href="package-flashservices.debug.html">debug</a>
						</li>
				<li><a href="package-flashservices.exception.html">exception</a>
						</li>
				<li><a href="package-flashservices.filters.html">filters</a>
						</li>
				<li><a href="package-flashservices.io.html">io</a>
						</li>
				<li><a href="package-flashservices.sql.html">sql</a>
						</li>
				<li><a href="package-flashservices.util.html">util</a>
						</li>
							</ul></li>
				<li><a href="package-Mekayotl.html">Mekayotl<span></span></a>
						<ul>
				<li><a href="package-Mekayotl.core.html">core</a>
						</li>
				<li><a href="package-Mekayotl.database.html">database<span></span></a>
						<ul>
				<li><a href="package-Mekayotl.database.dal.html">dal</a>
						</li>
				<li><a href="package-Mekayotl.database.mysql.html">mysql</a>
						</li>
				<li><a href="package-Mekayotl.database.sqlite.html">sqlite</a>
						</li>
							</ul></li>
				<li><a href="package-Mekayotl.tools.html">tools<span></span></a>
						<ul>
				<li><a href="package-Mekayotl.tools.render.html">render<span></span></a>
						<ul>
				<li><a href="package-Mekayotl.tools.render.html.html">html</a>
						</li>
							</ul></li>
				<li><a href="package-Mekayotl.tools.renders.html">renders</a>
						</li>
							</ul></li></ul></li>
				<li><a href="package-None.html">None</a>
						</li>
				<li><a href="package-PHP.html">PHP</a>
						</li>
				<li><a href="package-PHPMailer.html">PHPMailer</a>
						</li>
				<li><a href="package-Services.html">Services<span></span></a>
						<ul>
				<li><a href="package-Services.JSON.html">JSON</a>
						</li>
							</ul></li>
				<li class="active"><a href="package-Swift.html">Swift<span></span></a>
						<ul>
				<li><a href="package-Swift.ByteStream.html">ByteStream</a>
						</li>
				<li><a href="package-Swift.CharacterStream.html">CharacterStream</a>
						</li>
				<li class="active"><a href="package-Swift.Encoder.html">Encoder</a>
						</li>
				<li><a href="package-Swift.Events.html">Events</a>
						</li>
				<li><a href="package-Swift.KeyCache.html">KeyCache</a>
						</li>
				<li><a href="package-Swift.Mailer.html">Mailer</a>
						</li>
				<li><a href="package-Swift.Mime.html">Mime</a>
						</li>
				<li><a href="package-Swift.Plugins.html">Plugins</a>
						</li>
				<li><a href="package-Swift.Transport.html">Transport</a>
						</li>
							</ul></li>
			</ul>
		</div>

		<hr />


		<div id="elements">
			<h3>Classes</h3>
			<ul>
				<li class="active"><a href="class-Swift_CharacterReader_GenericFixedWidthReader.html">Swift_CharacterReader_GenericFixedWidthReader</a></li>
				<li><a href="class-Swift_CharacterReader_UsAsciiReader.html">Swift_CharacterReader_UsAsciiReader</a></li>
				<li><a href="class-Swift_CharacterReader_Utf8Reader.html">Swift_CharacterReader_Utf8Reader</a></li>
				<li><a href="class-Swift_CharacterReaderFactory_SimpleCharacterReaderFactory.html">Swift_CharacterReaderFactory_SimpleCharacterReaderFactory</a></li>
				<li><a href="class-Swift_Encoder_Base64Encoder.html">Swift_Encoder_Base64Encoder</a></li>
				<li><a href="class-Swift_Encoder_QpEncoder.html">Swift_Encoder_QpEncoder</a></li>
				<li><a href="class-Swift_Encoder_Rfc2231Encoder.html">Swift_Encoder_Rfc2231Encoder</a></li>
				<li><a href="class-Swift_Encoding.html">Swift_Encoding</a></li>
			</ul>

			<h3>Interfaces</h3>
			<ul>
				<li><a href="class-Swift_CharacterReader.html">Swift_CharacterReader</a></li>
				<li><a href="class-Swift_CharacterReaderFactory.html">Swift_CharacterReaderFactory</a></li>
				<li><a href="class-Swift_Encoder.html">Swift_Encoder</a></li>
			</ul>




		</div>
	</div>
</div>

<div id="splitter"></div>

<div id="right">
<div id="rightInner">
	<form id="search">
		<input type="hidden" name="cx" value="" />
		<input type="hidden" name="ie" value="UTF-8" />
		<input type="text" name="q" class="text" />
		<input type="submit" value="Search" />
	</form>

	<div id="navigation">
		<ul>
			<li>
				<a href="index.html" title="Overview"><span>Overview</span></a>
			</li>
			<li>
				<a href="package-Swift.Encoder.html" title="Summary of Swift\Encoder"><span>Package</span></a>
			</li>
			<li>
				<a href="class-Swift_CharacterReader_GenericFixedWidthReader.html" title="Summary of Swift_CharacterReader_GenericFixedWidthReader"><span>Class</span></a>
			</li>
		</ul>
		<ul>
			<li>
				<a href="tree.html" title="Tree view of classes, interfaces, traits and exceptions"><span>Tree</span></a>
			</li>
		</ul>
		<ul>
		</ul>
	</div>

<pre><code><a href="#1" id="1" class="l"> 1: </a><span class="xlang">&lt;?php</span>
<a href="#2" id="2" class="l"> 2: </a>
<a href="#3" id="3" class="l"> 3: </a><span class="php-comment">/*
</span><a href="#4" id="4" class="l"> 4: </a><span class="php-comment"> * This file is part of SwiftMailer.
</span><a href="#5" id="5" class="l"> 5: </a><span class="php-comment"> * (c) 2004-2009 Chris Corbyn
</span><a href="#6" id="6" class="l"> 6: </a><span class="php-comment"> *
</span><a href="#7" id="7" class="l"> 7: </a><span class="php-comment"> * For the full copyright and license information, please view the LICENSE
</span><a href="#8" id="8" class="l"> 8: </a><span class="php-comment"> * file that was distributed with this source code.
</span><a href="#9" id="9" class="l"> 9: </a><span class="php-comment"> */</span>
<a href="#10" id="10" class="l">10: </a>
<a href="#11" id="11" class="l">11: </a><span class="php-comment">/**
</span><a href="#12" id="12" class="l">12: </a><span class="php-comment"> * Provides fixed-width byte sizes for reading fixed-width character sets.
</span><a href="#13" id="13" class="l">13: </a><span class="php-comment"> * @package Swift
</span><a href="#14" id="14" class="l">14: </a><span class="php-comment"> * @subpackage Encoder
</span><a href="#15" id="15" class="l">15: </a><span class="php-comment"> * @author Chris Corbyn
</span><a href="#16" id="16" class="l">16: </a><span class="php-comment"> * @author Xavier De Cock &lt;xdecock@gmail.com&gt;
</span><a href="#17" id="17" class="l">17: </a><span class="php-comment"> */</span>
<a href="#18" id="18" class="l">18: </a><span class="php-keyword1">class</span> Swift_CharacterReader_GenericFixedWidthReader <span class="php-keyword1">implements</span>
<a href="#19" id="19" class="l">19: </a>        Swift_CharacterReader
<a href="#20" id="20" class="l">20: </a>{
<a href="#21" id="21" class="l">21: </a>
<a href="#22" id="22" class="l">22: </a>    <span class="php-comment">/**
</span><a href="#23" id="23" class="l">23: </a><span class="php-comment">     * The number of bytes in a single character.
</span><a href="#24" id="24" class="l">24: </a><span class="php-comment">     * @var int
</span><a href="#25" id="25" class="l">25: </a><span class="php-comment">     * @access private
</span><a href="#26" id="26" class="l">26: </a><span class="php-comment">     */</span>
<a href="#27" id="27" class="l">27: </a>
<a href="#28" id="28" class="l">28: </a>    <span class="php-keyword1">private</span> <span class="php-var">$_width</span>;
<a href="#29" id="29" class="l">29: </a>
<a href="#30" id="30" class="l">30: </a>    <span class="php-comment">/**
</span><a href="#31" id="31" class="l">31: </a><span class="php-comment">     * Creates a new GenericFixedWidthReader using $width bytes per character.
</span><a href="#32" id="32" class="l">32: </a><span class="php-comment">     * @param int $width
</span><a href="#33" id="33" class="l">33: </a><span class="php-comment">     */</span>
<a href="#34" id="34" class="l">34: </a>
<a href="#35" id="35" class="l">35: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> __construct(<span class="php-var">$width</span>)
<a href="#36" id="36" class="l">36: </a>    {
<a href="#37" id="37" class="l">37: </a>        <span class="php-var">$this</span>-&gt;_width = <span class="php-var">$width</span>;
<a href="#38" id="38" class="l">38: </a>    }
<a href="#39" id="39" class="l">39: </a>
<a href="#40" id="40" class="l">40: </a>    <span class="php-comment">/**
</span><a href="#41" id="41" class="l">41: </a><span class="php-comment">     * Returns the complete charactermap
</span><a href="#42" id="42" class="l">42: </a><span class="php-comment">     *
</span><a href="#43" id="43" class="l">43: </a><span class="php-comment">     * @param string $string
</span><a href="#44" id="44" class="l">44: </a><span class="php-comment">     * @param int $startOffset
</span><a href="#45" id="45" class="l">45: </a><span class="php-comment">     * @param array $currentMap
</span><a href="#46" id="46" class="l">46: </a><span class="php-comment">     * @param mixed $ignoredChars
</span><a href="#47" id="47" class="l">47: </a><span class="php-comment">     * @return $int
</span><a href="#48" id="48" class="l">48: </a><span class="php-comment">     */</span>
<a href="#49" id="49" class="l">49: </a>
<a href="#50" id="50" class="l">50: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> getCharPositions(<span class="php-var">$string</span>, <span class="php-var">$startOffset</span>, &amp;<span class="php-var">$currentMap</span>,
<a href="#51" id="51" class="l">51: </a>            &amp;<span class="php-var">$ignoredChars</span>)
<a href="#52" id="52" class="l">52: </a>    {
<a href="#53" id="53" class="l">53: </a>        <span class="php-var">$strlen</span> = <span class="php-keyword2">strlen</span>(<span class="php-var">$string</span>);
<a href="#54" id="54" class="l">54: </a>        <span class="php-comment">// % and / are CPU intensive, so, maybe find a better way</span>
<a href="#55" id="55" class="l">55: </a>        <span class="php-var">$ignored</span> = <span class="php-var">$strlen</span> % <span class="php-var">$this</span>-&gt;_width;
<a href="#56" id="56" class="l">56: </a>        <span class="php-var">$ignoredChars</span> = <span class="php-keyword2">substr</span>(<span class="php-var">$string</span>, -<span class="php-var">$ignored</span>);
<a href="#57" id="57" class="l">57: </a>        <span class="php-var">$currentMap</span> = <span class="php-var">$this</span>-&gt;_width;
<a href="#58" id="58" class="l">58: </a>        <span class="php-keyword1">return</span> (<span class="php-var">$strlen</span> - <span class="php-var">$ignored</span>) / <span class="php-var">$this</span>-&gt;_width;
<a href="#59" id="59" class="l">59: </a>
<a href="#60" id="60" class="l">60: </a>    }
<a href="#61" id="61" class="l">61: </a>
<a href="#62" id="62" class="l">62: </a>    <span class="php-comment">/**
</span><a href="#63" id="63" class="l">63: </a><span class="php-comment">     * Returns mapType
</span><a href="#64" id="64" class="l">64: </a><span class="php-comment">     * @int mapType
</span><a href="#65" id="65" class="l">65: </a><span class="php-comment">     */</span>
<a href="#66" id="66" class="l">66: </a>
<a href="#67" id="67" class="l">67: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> getMapType()
<a href="#68" id="68" class="l">68: </a>    {
<a href="#69" id="69" class="l">69: </a>        <span class="php-keyword1">return</span> self::MAP_TYPE_FIXED_LEN;
<a href="#70" id="70" class="l">70: </a>    }
<a href="#71" id="71" class="l">71: </a>
<a href="#72" id="72" class="l">72: </a>    <span class="php-comment">/**
</span><a href="#73" id="73" class="l">73: </a><span class="php-comment">     * Returns an integer which specifies how many more bytes to read.
</span><a href="#74" id="74" class="l">74: </a><span class="php-comment">     * A positive integer indicates the number of more bytes to fetch before invoking
</span><a href="#75" id="75" class="l">75: </a><span class="php-comment">     * this method again.
</span><a href="#76" id="76" class="l">76: </a><span class="php-comment">     * A value of zero means this is already a valid character.
</span><a href="#77" id="77" class="l">77: </a><span class="php-comment">     * A value of -1 means this cannot possibly be a valid character.
</span><a href="#78" id="78" class="l">78: </a><span class="php-comment">     * @param string $bytes
</span><a href="#79" id="79" class="l">79: </a><span class="php-comment">     * @return int
</span><a href="#80" id="80" class="l">80: </a><span class="php-comment">     */</span>
<a href="#81" id="81" class="l">81: </a>
<a href="#82" id="82" class="l">82: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> validateByteSequence(<span class="php-var">$bytes</span>, <span class="php-var">$size</span>)
<a href="#83" id="83" class="l">83: </a>    {
<a href="#84" id="84" class="l">84: </a>        <span class="php-var">$needed</span> = <span class="php-var">$this</span>-&gt;_width - <span class="php-var">$size</span>;
<a href="#85" id="85" class="l">85: </a>        <span class="php-keyword1">return</span> (<span class="php-var">$needed</span> &gt; -<span class="php-num">1</span>) ? <span class="php-var">$needed</span> : -<span class="php-num">1</span>;
<a href="#86" id="86" class="l">86: </a>    }
<a href="#87" id="87" class="l">87: </a>
<a href="#88" id="88" class="l">88: </a>    <span class="php-comment">/**
</span><a href="#89" id="89" class="l">89: </a><span class="php-comment">     * Returns the number of bytes which should be read to start each character.
</span><a href="#90" id="90" class="l">90: </a><span class="php-comment">     * @return int
</span><a href="#91" id="91" class="l">91: </a><span class="php-comment">     */</span>
<a href="#92" id="92" class="l">92: </a>
<a href="#93" id="93" class="l">93: </a>    <span class="php-keyword1">public</span> <span class="php-keyword1">function</span> getInitialByteSize()
<a href="#94" id="94" class="l">94: </a>    {
<a href="#95" id="95" class="l">95: </a>        <span class="php-keyword1">return</span> <span class="php-var">$this</span>-&gt;_width;
<a href="#96" id="96" class="l">96: </a>    }
<a href="#97" id="97" class="l">97: </a>
<a href="#98" id="98" class="l">98: </a>}
<a href="#99" id="99" class="l">99: </a></code></pre>

	<div id="footer">
		nort API documentation generated by <a href="http://apigen.org">ApiGen 2.7.0</a>
	</div>
</div>
</div>
</body>
</html>
